Incremental Call Graph Reanalysis for Object-Oriented Software Maintenance

نویسندگان

  • Amie L. Souter
  • Lori L. Pollock
چکیده

A program’s call graph is an essential underlying structure for performing the various interprocedural analyses used in software development tools for object-oriented software systems. For interactive software development tools and software maintenance activities, the call graph needs to remain fairly precise and be updated quickly in response to software changes. This paper presents incremental algorithms for updating a call graph that has been initially constructed using the Cartesian Product Algorithm, which computes a highly precise call graph in the presence of dynamically dispatched message sends. Templates are exploited to reduce unnecessary reanalysis as software component changes occur. The preliminary empirical results from our implementation within a Java environment are encouraging. Significant time savings were observed for the incremental algorithm in comparison to an exhaustive analysis, with no loss in precision.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Incremental Maintenance of Object-Oriented Views in a Warehousing Environment

Data warehousing is an approach to data integration in which integrated information is stored in a data warehouse for direct querying and analysis. To provide fast access, a data warehouse stores materialized views defined over data from its data sources. As a result, a data warehouse needs to be maintained to keep its contents consistent with the contents of its data sources. Incremental maint...

متن کامل

Reverse-engineering Cobol via formal methods

We describe methods and software tools which aid in reverse-engineering COBOL application programs back to the specification stage (and in validating them against the specification). The aim is to create object-oriented abstractions from the implementation which capture the design concepts accurately, and the central process which the tools support is ‘transformation from formalism to formalism...

متن کامل

Class-based Visibility from an MDA Perspective: From Access Graphs to Eiffel Code

Encapsulation is one of the main principles in object-oriented software construction. Reducing software component coupling and enforcing interface definition facilitates maintenance, reusability and incremental development, thus increasing software quality. Encapsulation is usually supported by specific access control (visibility) mechanisms as private or protected in Java and C++ or Eiffel’s e...

متن کامل

RECAST: Evolution of Object-Oriented Applications

This research project is about reengineering object-oriented applications. Reengineering such applications inherits complex problems related to software maintenance, i.e., program understanding, program analysis, and program transformation and adds to them (1) the complexity introduced by late binding, dynamic typing, and incremental definition specific to object-oriented programming, and (2) t...

متن کامل

Design of Class Hierarchies Based on Concept (Galois) Lattices

Building and maintaining the class hierarchy has been recognized as an important but one of the most difficult activities of object-oriented design. Concept (or Galois) lattices and variant structures are presented as a framework for dealing with the design and maintenance of class hierarchies. Because the design of class hierarchies is inherently an iterative and incremental process, we design...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2001